#!/bin/sh
. /lib/functions.sh
. /lib/functions/system.sh

set_from_redboot () {
	for npe in eth0 eth1 eth2
	do
		if ip link show dev $npe > /dev/null 2>&1; then
			ip link set dev $npe address $(fconfig -s -r -d /dev/$1 -n npe_"$npe"_esa)
		fi
	done

	# Devices with MAC address set blank: set a dummy value.
	if [ "$(ip link show dev eth0 2>/dev/null | grep -c 00:00:00:00:00:00)" = "1" ]; then
		ip link set dev eth0 address 00:11:22:33:44:55
	fi
	if [ "$(ip link show dev eth1 2>/dev/null | grep -c 00:00:00:00:00:00)" = "1" ]; then
		ip link set dev eth0 address 00:11:22:33:44:56
	fi
}

set_from_sysconf () {
	ip link set dev eth0 address $(mtd_get_mac_ascii SysConf hw_addr)
}

set_ether_mac () {
	RBC="$(grep "RedBoot config" /proc/mtd | cut -d: -f1)"
	if [ ! -z $RBC ] ; then
		set_from_redboot $RBC
	else
		SYSC="$(grep "SysConf" /proc/mtd | cut -d: -f1)"
		if [ ! -z $SYSC ] ; then
			set_from_sysconf
		fi
	fi
}

boot_hook_add preinit_main set_ether_mac
